package com.qys.livesMall.app.user.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qys.livesMall.app.user.model.dto.AppBaseDTO;
import com.qys.livesMall.app.user.model.dto.app.AppUserAddressDTO;
import com.qys.livesMall.app.user.model.dto.sys.SysUserAddressDTO;
import com.qys.livesMall.app.user.model.dto.sys.SysUserAddressPageDTO;
import com.qys.livesMall.app.user.model.entity.H2AppUserAddress;
import com.qys.livesMall.app.user.model.vo.sys.H2AppUserAddressVO;
import com.qys.livesMall.framework.view.BaseQuery;

import java.util.List;

/**
 * <p>
 * 用户收货地址 服务类
 * </p>
 *
 * @author dp
 * @since 2023-04-24
 */
public interface IH2AppUserAddressService extends IService<H2AppUserAddress> {

    /**
     * 保存用户地址信息
     *
     * @param appUserAddressDTO {@link  AppUserAddressDTO}
     * @param userId            用户Id
     */
    String save(AppUserAddressDTO appUserAddressDTO, String userId);

    /**
     * 分页查询用户地址信息
     *
     * @param baseQuery
     * @return
     */
    Page<H2AppUserAddress> page(BaseQuery baseQuery, Long userId);

    Page<H2AppUserAddressVO> page(SysUserAddressPageDTO queryDTO);
    /**
     * 设置默认地址
     *
     * @param id 地址id
     */
    void setDefaultAddress(String id);

    /**
     * 取默认地址
     * @param userId
     * @return
     */
    H2AppUserAddress getByUserId(Long userId);
    H2AppUserAddress getByUserIds(List<Long> userIds);


    void setDefaultAddressByUserId(SysUserAddressDTO dto);

    List<Long> getExistByUserIds(List<Long> userIds);
}
